package com.hippo.javacore.javaiostream.iostream;

import java.io.*;

/**
 * @ClassName BufferInputStreamOpt
 * @Description TODO 字节缓冲流操作
 * @Author tangxl
 * @create 2023-04-06 19:08
 **/
public class BufferedInputStreamOpt {
    public static void main(String[] args) {
        // TODO 字节缓冲流操作
        try (
                InputStream is = new FileInputStream("study-commons/java-file-iostream/src/main/resources/file/a.txt");
                // 1.定义一个字节缓冲输入流包装原始的字节输入流
                BufferedInputStream bis = new BufferedInputStream(is);// 缓冲区大小默认8KB

                OutputStream os = new FileOutputStream("study-commons/java-file-iostream/src/main/resources/file/b.txt");
                // 2.定义一个字节缓冲输出流包装原始的字节输出流
                OutputStream bos = new BufferedOutputStream(os,8*1024);// 缓冲区大小默认8KB
        ){
            byte[] buffer = new byte[1024];// 字节数组
            int len = 0; // 每次读取的有效字节个数
            while ((len = bis.read(buffer)) != -1) {// 通过字节缓冲输入流读取文件
                bos.write(buffer, 0, len);// 通过字节缓冲输出流写入文件
            }
        }catch (Exception e) {
            e.printStackTrace();
        }


    }
}
